home *** CD-ROM | disk | FTP | other *** search
/ Greenhouse Effect Detection Expriment / NASA Greenhouse Effect Detection Expriment 1992 - Disc 2.iso / software / dos / cdf22pc / src / include / cdflist.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-03-11  |  26.7 KB  |  893 lines

  1. /******************************************************************************
  2. *
  3. *  NSSDC/CDF                    Header file for CDFlist.
  4. *
  5. *  Version 2.0, 4-Mar-92, ST Systems (STX)
  6. *
  7. *  Modification history:
  8. *
  9. *   V1.0  29-Jan-91, H Leckner      Original version (for CDF V2.0).
  10. *   V1.1  26-Mar-91, H Leckner      Fix for possible char array overwrite.
  11. *   V1.2  25-Jun-91, H Leckner      CDF V2.1 enhancements.  'cdflist_vid_def.h'
  12. *                  and 'cdflist_vid_init.h' included.
  13. *   V1.3   9-Jul-91, H Leckner      Fix for filters.
  14. *   V1.4  11-Sep-91, J Love      Modified for IBM-PC port.
  15. *   V1.5   4-Oct-91, H Leckner      Added ability to select more than 8 vars.
  16. *   V1.6  15-Oct-91, H Leckner      Changed for Curses on IBM-RS6000.
  17. *   V1.7  05-Nov-91, H Leckner    Changed for IBM-PC, also added function
  18. *                  protoypes.
  19. *   V2.0   4-Mar-92  H Leckner    IBM PC port (and HP 9000).  CDF V2.2.
  20. *
  21. ******************************************************************************/
  22.  
  23. #if defined(vms)|defined(ultrix)|defined(AIX)|defined(__MSDOS__)|defined(hpux)
  24. #define CONTINUE 10
  25. #else
  26. #if defined(unix)
  27. #define CONTINUE 13
  28. #endif
  29. #endif
  30. #define NOCONTINUE -10
  31. #define PERIOD 46
  32. #define DUPLICATE 0
  33. #define OK_RESP -1
  34. #define YES 89
  35. #define yes 121
  36. #define NO  78
  37. #define no 110
  38. #define MINMAX_SIZE 15
  39. #define EPOCH_WIDTH 25
  40. #define TERMIN 1
  41. #define FILEOUT  2
  42. #define TERMFILE 3
  43. #define CDFOUT   4
  44. #define MINMAX 1
  45. #define LIST   2
  46. #define NOERASE 0
  47. #define ERASE   1
  48. #define RINGBELL    -1
  49. #define NOBELL  0
  50. #define MENU 1
  51. #define HELP_MENU 2
  52. #define MIN_MAX_ERROR 0
  53. #define SCALAR -1
  54. #define SELECT_ALL 1
  55. #define DONE      0
  56. #define MANUAL     0
  57. #define AUTO       1
  58. #define DIRECTORY  2 
  59. #define NOPAUSE    0
  60. #define PAUSE       1
  61. #define LIST_DATA  0
  62. #define CDF_FIELD  1
  63. #define OUT_FIELD  2
  64. #define VAR_FIELD  3
  65. #define SPECIAL_OPT_FIELD 4
  66. #define HELP_FIELD 5
  67. #define EXIT       6
  68. #define EPOCHFORMAT_FIELD 1
  69. #define VARFORMAT_FIELD   2
  70. #define FILTER_FIELD      3
  71. #define FILLVALUE_FIELD   4
  72. #define MINMAX_FIELD      5
  73. #define NOTTHERE  -1
  74. #define CDFLIST_MAX_VAR_LENGTH  19
  75. #define MULTIPLE  -1
  76. #define  PAGEUP 85
  77. #define  PAGEup 117
  78. #define  PAGEdown 68
  79. #define  PAGEDOWN 100
  80. #define  QUIT 81
  81. #define  quit 113
  82. #define EPOCHFORM_DEF     1
  83. #define EPOCHFORM_1       2
  84. #define FORMAT 1
  85. #define NOFORMAT  2
  86. #define useMINMAX  1
  87. #define NOuseMINMAX   2
  88. #define FILTER     1
  89. #define NOFILTER   2
  90. #define FILLVAL 1
  91. #define NOFILLVAL 2
  92. #define CNTRLM "CTL-F=Action  "
  93. #define CNTRLW "CTL-W=Redraw  "
  94. #define CNTRLD "CTL-D = Delete to end-of-line   "
  95. #define CNTRLN "CTL-N = Move   to end-of-line   "
  96. #define RET    "RETURN=Select  "
  97. #define HLP    "Help=CTL-F     "                /* V1.1 */
  98. #define DEL    "DEL=Delete    "
  99. #define PUP    "U=page up    "
  100. #define PDOWN  "D=page down  "
  101. #define Qdes   "Q=quit popup  "
  102. #define UP   "UP_ARROW  =Up    "
  103. #define DOWN "DOWN_ARROW=Down  "
  104. #define LEFT "LEFT_ARROW=Back  "
  105. #define NEXT "RETURN=Next Field  "
  106. #define BACK "CTL-B =Back Field  "
  107. #define RIGHT"RIGHT_ARROW=next "
  108. #define CNTRLP  "CTL-P=pop-up"
  109. #define C    (*CDF)
  110. #define NC    (*new_CDF)
  111. #define S    (*screen)
  112. #define V    variables[var_num]
  113. #define VA    variables[var_num].attr[attr_num]
  114. #define VN      (*variables)[var_num]
  115. #define SO    Special_options
  116. struct GLOBAL_struct
  117. {
  118.     int        save_id;
  119.     WINDOWid    CDF_vid;
  120.     WINDOWid    VAR_vid;
  121.     WINDOWid    KEY_vid;
  122.     WINDOWid    MES_vid;
  123.     WINDOWid    OUT_vid;
  124.     WINDOWid    VARSELECT_vid;
  125.     WINDOWid    DIR_vid;
  126.     WINDOWid    DIS_vid;
  127.     WINDOWid    FIELD_vid;
  128.     WINDOWid    HELP_vid;
  129.     WINDOWid    SPECIAL_vid;
  130.     WINDOWid    EPOCHFORMAT_vid;
  131.     WINDOWid    VARFORMAT_vid;
  132.     WINDOWid    MINMAX_vid;
  133.     WINDOWid    FILTER_vid;
  134.     WINDOWid    FILLVALUE_vid;
  135.  
  136. };
  137. struct vid_struct
  138. {
  139.     int        row;
  140.     int        col;
  141.     char        label[80];
  142.     int        field_col;
  143. };
  144. struct attr_struct
  145. {
  146.     char        attr_mnemonic[CDF_ATTR_NAME_LEN];
  147.     long int    data_type;
  148.     long int    num_elements;
  149.     long int    max_entry;
  150.     long int    attr_scope;
  151. };
  152. struct variable_struct
  153. {
  154.     char            var_mnemonic[CDF_VAR_NAME_LEN];
  155.     long int    data_type;
  156.     long int    num_bytes;
  157.     long int    record_variance;
  158.     long int    dim_variances[CDF_MAX_DIMS];
  159.     long int    var_num;
  160.     long int    out_var_num;
  161.     double        min;
  162.     double        max;
  163.     double        filter_min;
  164.     double        filter_max;
  165.     long int    filter;
  166.     long int    minmax_flag;
  167.     long int    var_mnemonic_len;
  168.     char        header_name[80];
  169.     long int    scalar;
  170.     long int    dim_num;
  171.     long int    num_values;
  172.     CDFstatus    rcode;
  173.     double        *bin_value;
  174.     char        *char_value;
  175. };
  176. struct CDF_struct
  177. {
  178.     char                 CDF_name[CDF_PATHNAME_LEN];
  179.     CDFid            CDF_id;
  180.     long int        max_record_num;
  181.     long int        num_dims;
  182.     long int        dim_sizes[CDF_MAX_DIMS];
  183.     long int        num_vars;
  184.     long int        num_attrs;
  185.     long int        output;
  186.     long int        max_var_len;
  187.     long            version;
  188.     long            release;
  189.     char            text[CDF_DOCUMENT_LEN];
  190.     long            encoding;
  191.     long            majority;
  192.     char            file_name[20];
  193.     struct attr_struct    *attr;
  194. };
  195. struct SPECIAL_OPTION_struct
  196. {
  197.     int            EPOCH_format;
  198.     int            EPOCH_output_len[2];
  199.     int            variable_format;
  200.     int            format_attr;
  201.     int            filters;
  202.     int            fill_values;
  203.     int            fillval_attr;
  204.     int            minmax;
  205. };
  206.  
  207. union     mixed
  208. {
  209.     double            r8;
  210.     float            r4;
  211.     long int        i4;
  212.     unsigned long int    ui4;
  213.     short int        i2;
  214.     unsigned short int    ui2;
  215.     Schar            byte;
  216.     Uchar            ubyte;
  217.     char            *string;
  218. };
  219. #if defined(CDFLIST)
  220. struct     EPOCH    ep;
  221. struct  SPECIAL_OPTION_struct Special_options;
  222. #else
  223. extern struct EPOCH ep;
  224. extern struct  SPECIAL_OPTION_struct Special_options;
  225. #endif
  226.  
  227. /******************************************************************************
  228. * Contents of 'cdflist_vid_def.h' start here.
  229. ******************************************************************************/
  230.  
  231. #if defined (vms)
  232. #define CDF_ROWS     4
  233. #define CDF_COLUMNS 78
  234. #define CDF_ROW_PASTE 2
  235. #define CDF_COL_PASTE 2
  236. #define CDF_NAME_ROW 1
  237. #define CDF_NAME_COL 11
  238. #define CDF_NAME_LENGTH 68
  239. #define CDF_NUM_ELEMENTS 7
  240. #define VAR_ROWS    9
  241. #define VAR_COLUMNS 78
  242. #define VAR_ROW_PASTE 8
  243. #define VAR_COL_PASTE 2
  244. #define VAR_NUM_ELEMENTS 27
  245. #define VAR_MINMAX_LEN 14
  246. #define KEY_ROWS     2
  247. #define KEY_COLUMNS 78
  248. #define KEY_ROW_PASTE 19
  249. #define KEY_COL_PASTE 2
  250. #define KEY_NUM_ELEMENTS 1
  251. #define MES_ROWS     1
  252. #define MES_COLUMNS 78
  253. #define MES_ROW_PASTE 23
  254. #define MES_COL_PASTE 2
  255. #define MES_NUM_ELEMENTS 1
  256. #define OUT_ROWS     4
  257. #define OUT_COLUMNS 13
  258. #define OUT_ROW_PASTE 6
  259. #define OUT_COL_PASTE 64
  260. #define OUT_NUM_ELEMENTS 4
  261. #define OUT_NAME_ROW 4
  262. #define OUT_NAME_COL 64
  263. #define OUT_NAME_LEN 14
  264. #define FIELD_ROWS     7
  265. #define FIELD_COLUMNS 22
  266. #define FIELD_ROW_PASTE 3
  267. #define FIELD_COL_PASTE 30
  268. #define FIELD_NUM_ELEMENTS 7
  269. #define DIS_ROWS       8
  270. #define DIS_COLUMNS   16
  271. #define DIS_ROW_PASTE 9
  272. #define DISMIN_COL_PASTE 26
  273. #define DISMAX_COL_PASTE 52
  274. #define DIR_ROWS      10
  275. #define DIR_COLUMNS   27
  276. #define DIR_ROW_PASTE 2
  277. #define DIR_COL_PASTE 52
  278. #define EPOCH_ROWS      1
  279. #define EPOCH_COLUMNS   24
  280. #define EPOCH_ROW_PASTE 8
  281. #define EPOCH_NUM_ELEMENTS 1
  282. #define VARSELECT_ROWS      8
  283. #define VARSELECT_COLUMNS   58
  284. #define VARSELECT_ROW_PASTE 9
  285. #define VARSELECT_COL_PASTE 20
  286. #define VARSELECT_NUM_ELEMENTS 8
  287. #define HELP_ROWS    10
  288. #define HELP_COLUMNS 78
  289. #define HELP_ROW_PASTE 6
  290. #define HELP_COL_PASTE 2
  291.  
  292. #define SPECIAL_ROWS     15
  293. #define SPECIAL_COLUMNS  69
  294. #define SPECIAL_ROW_PASTE 3
  295. #define SPECIAL_COL_PASTE 5
  296. #define EPOCHFORMAT_ROWS     2
  297. #define EPOCHFORMAT_COLUMNS 29
  298. #define EPOCHFORMAT_ROW_PASTE 5
  299. #define EPOCHFORMAT_COL_PASTE 9
  300. #define EPOCHFORMAT_NUM_ELEMENTS 2
  301. #define VARFORMAT_ROWS     2
  302. #define VARFORMAT_COLUMNS 27
  303. #define VARFORMAT_ROW_PASTE 5
  304. #define VARFORMAT_COL_PASTE 44
  305. #define VARFORMAT_NUM_ELEMENTS 2
  306. #define FILTER_ROWS     2
  307. #define FILTER_COLUMNS 26
  308. #define FILTER_ROW_PASTE 11
  309. #define FILTER_COL_PASTE 9
  310. #define FILTER_NUM_ELEMENTS 2
  311. #define FILLVALUE_ROWS     2
  312. #define FILLVALUE_COLUMNS 23
  313. #define FILLVALUE_ROW_PASTE 11
  314. #define FILLVALUE_COL_PASTE 44
  315. #define FILLVALUE_NUM_ELEMENTS 2
  316. #define MINMAX_ROWS     2
  317. #define MINMAX_COLUMNS 33
  318. #define MINMAX_ROW_PASTE 16
  319. #define MINMAX_COL_PASTE 24
  320. #define MINMAX_NUM_ELEMENTS 2
  321.  
  322. #define CDFNAME_ELEMENT_NUM 1
  323. #define NUMDIM_ELEMENT_NUM 2
  324. #define DIMSIZ_ELEMENT_NUM 3
  325. #define NUMVAR_ELEMENT_NUM 4
  326. #define NUMREC_ELEMENT_NUM 5
  327. #define OUT_ELEMENT_NUM    6
  328. #define OUT_NAME_ELEMENT_NUM
  329. #define ROW_OFFSET 0
  330. #define COL_OFFSET 0
  331. #endif
  332.  
  333. #if defined(unix) | defined(ultrix)
  334. #define CDF_ROWS     6
  335. #define CDF_COLUMNS 79
  336. #define CDF_ROW_PASTE 0
  337. #define CDF_COL_PASTE 1
  338. #define CDF_NAME_ROW 1
  339. #define CDF_NAME_COL 11
  340. #define CDF_NAME_LENGTH 68
  341. #define CDF_NUM_ELEMENTS 7
  342. #define VAR_ROWS    11
  343. #define VAR_COLUMNS 79
  344. #define VAR_ROW_PASTE 6
  345. #define VAR_COL_PASTE 1
  346. #define VAR_NUM_ELEMENTS 27
  347. #define VAR_MINMAX_LEN 14
  348. #define KEY_ROWS     4
  349. #define KEY_COLUMNS 79
  350. #define KEY_ROW_PASTE 17
  351. #define KEY_COL_PASTE 1
  352. #define KEY_NUM_ELEMENTS 1
  353. #define MES_ROWS     3
  354. #define MES_COLUMNS 79
  355. #define MES_ROW_PASTE 21
  356. #define MES_COL_PASTE 1
  357. #define MES_NUM_ELEMENTS 1
  358. #define OUT_ROWS     6
  359. #define OUT_COLUMNS 15
  360. #define OUT_ROW_PASTE 4
  361. #define OUT_COL_PASTE 64
  362. #define OUT_NUM_ELEMENTS 4
  363. #define OUT_NAME_ROW 4
  364. #define OUT_NAME_COL 64
  365. #define OUT_NAME_LEN 14
  366. #define FIELD_ROWS     9
  367. #define FIELD_COLUMNS 24
  368. #define FIELD_ROW_PASTE 1
  369. #define FIELD_COL_PASTE 29
  370. #define FIELD_NUM_ELEMENTS 7
  371. #define DIS_ROWS       10
  372. #define DIS_COLUMNS   17
  373. #define DIS_ROW_PASTE 7
  374. #define DISMIN_COL_PASTE 25
  375. #define DISMAX_COL_PASTE 51
  376. #define DIR_ROWS      12
  377. #define DIR_COLUMNS   28
  378. #define DIR_ROW_PASTE 0
  379. #define DIR_COL_PASTE 51
  380. #define EPOCH_ROWS      3
  381. #define EPOCH_COLUMNS   25
  382. #define EPOCH_ROW_PASTE 6
  383. #define EPOCH_NUM_ELEMENTS 1
  384. #define VARSELECT_ROWS      10
  385. #define VARSELECT_COLUMNS   59
  386. #define VARSELECT_ROW_PASTE 7
  387. #define VARSELECT_COL_PASTE 19
  388. #define VARSELECT_NUM_ELEMENTS 8
  389. #define HELP_ROWS    12
  390. #define HELP_COLUMNS 79
  391. #define HELP_ROW_PASTE 4
  392. #define HELP_COL_PASTE 1
  393. #define SPECIAL_ROWS     17
  394. #define SPECIAL_COLUMNS  70
  395. #define SPECIAL_ROW_PASTE 1
  396. #define SPECIAL_COL_PASTE 4
  397. #define EPOCHFORMAT_ROWS     4
  398. #define EPOCHFORMAT_COLUMNS 30
  399. #define EPOCHFORMAT_ROW_PASTE 3
  400. #define EPOCHFORMAT_COL_PASTE 8
  401. #define EPOCHFORMAT_NUM_ELEMENTS 2
  402. #define VARFORMAT_ROWS     4
  403. #define VARFORMAT_COLUMNS 28
  404. #define VARFORMAT_ROW_PASTE 3
  405. #define VARFORMAT_COL_PASTE 43
  406. #define VARFORMAT_NUM_ELEMENTS 2
  407. #define FILTER_ROWS     4
  408. #define FILTER_COLUMNS 27
  409. #define FILTER_ROW_PASTE 9
  410. #define FILTER_COL_PASTE 8
  411. #define FILTER_NUM_ELEMENTS 2
  412. #define FILLVALUE_ROWS     4
  413. #define FILLVALUE_COLUMNS 24
  414. #define FILLVALUE_ROW_PASTE 9
  415. #define FILLVALUE_COL_PASTE 43
  416. #define FILLVALUE_NUM_ELEMENTS 2
  417. #define MINMAX_ROWS     4
  418. #define MINMAX_COLUMNS 34
  419. #define MINMAX_ROW_PASTE 14
  420. #define MINMAX_COL_PASTE 23
  421. #define MINMAX_NUM_ELEMENTS 2
  422.  
  423.  
  424. #define CDFNAME_ELEMENT_NUM 1
  425. #define NUMDIM_ELEMENT_NUM 2
  426. #define DIMSIZ_ELEMENT_NUM 3
  427. #define NUMVAR_ELEMENT_NUM 4
  428. #define NUMREC_ELEMENT_NUM 5
  429. #define OUT_ELEMENT_NUM    6
  430. #define OUT_NAME_ELEMENT_NUM    7
  431. #define ROW_OFFSET 2
  432. #define COL_OFFSET 2
  433. #endif
  434. #if defined(__MSDOS__)
  435. #define CDF_ROWS     6
  436. #define CDF_COLUMNS 79
  437. #define CDF_ROW_PASTE 0
  438. #define CDF_COL_PASTE 0
  439. #define CDF_NAME_ROW 1
  440. #define CDF_NAME_COL 11
  441. #define CDF_NAME_LENGTH 68
  442. #define CDF_NUM_ELEMENTS 7
  443. #define VAR_ROWS    11
  444. #define VAR_COLUMNS 79
  445. #define VAR_ROW_PASTE 6
  446. #define VAR_COL_PASTE 0
  447. #define VAR_NUM_ELEMENTS 27
  448. #define VAR_MINMAX_LEN 14
  449. #define KEY_ROWS     4
  450. #define KEY_COLUMNS 79
  451. #define KEY_ROW_PASTE 17
  452. #define KEY_COL_PASTE 0
  453. #define KEY_NUM_ELEMENTS 1
  454. #define MES_ROWS     3
  455. #define MES_COLUMNS 79
  456. #define MES_ROW_PASTE 21
  457. #define MES_COL_PASTE 0
  458. #define MES_NUM_ELEMENTS 1
  459. #define OUT_ROWS     6
  460. #define OUT_COLUMNS 15
  461. #define OUT_ROW_PASTE 4
  462. #define OUT_COL_PASTE 63
  463. #define OUT_NUM_ELEMENTS 4
  464. #define OUT_NAME_ROW 4
  465. #define OUT_NAME_COL 64
  466. #define OUT_NAME_LEN 14
  467. #define FIELD_ROWS     9
  468. #define FIELD_COLUMNS 24
  469. #define FIELD_ROW_PASTE 1
  470. #define FIELD_COL_PASTE 28
  471. #define FIELD_NUM_ELEMENTS 7
  472. #define DIS_ROWS       10
  473. #define DIS_COLUMNS   17
  474. #define DIS_ROW_PASTE 7
  475. #define DISMIN_COL_PASTE 24
  476. #define DISMAX_COL_PASTE 51
  477. #define DIR_ROWS      12
  478. #define DIR_COLUMNS   28
  479. #define DIR_ROW_PASTE 0
  480. #define DIR_COL_PASTE 50
  481. #define EPOCH_ROWS      3
  482. #define EPOCH_COLUMNS   25
  483. #define EPOCH_ROW_PASTE 6
  484. #define EPOCH_NUM_ELEMENTS 1
  485. #define VARSELECT_ROWS      10
  486. #define VARSELECT_COLUMNS   59
  487. #define VARSELECT_ROW_PASTE 7
  488. #define VARSELECT_COL_PASTE 18
  489. #define VARSELECT_NUM_ELEMENTS 8
  490. #define HELP_ROWS    12
  491. #define HELP_COLUMNS 79
  492. #define HELP_ROW_PASTE 4
  493. #define HELP_COL_PASTE 1
  494. #define SPECIAL_ROWS     17
  495. #define SPECIAL_COLUMNS  70
  496. #define SPECIAL_ROW_PASTE 1
  497. #define SPECIAL_COL_PASTE 4
  498. #define EPOCHFORMAT_ROWS     4
  499. #define EPOCHFORMAT_COLUMNS 30
  500. #define EPOCHFORMAT_ROW_PASTE 3
  501. #define EPOCHFORMAT_COL_PASTE 8
  502. #define EPOCHFORMAT_NUM_ELEMENTS 2
  503. #define VARFORMAT_ROWS     4
  504. #define VARFORMAT_COLUMNS 28
  505. #define VARFORMAT_ROW_PASTE 3
  506. #define VARFORMAT_COL_PASTE 43
  507. #define VARFORMAT_NUM_ELEMENTS 2
  508. #define FILTER_ROWS     4
  509. #define FILTER_COLUMNS 27
  510. #define FILTER_ROW_PASTE 9
  511. #define FILTER_COL_PASTE 8
  512. #define FILTER_NUM_ELEMENTS 2
  513. #define FILLVALUE_ROWS     4
  514. #define FILLVALUE_COLUMNS 24
  515. #define FILLVALUE_ROW_PASTE 9
  516. #define FILLVALUE_COL_PASTE 43
  517. #define FILLVALUE_NUM_ELEMENTS 2
  518. #define MINMAX_ROWS     4
  519. #define MINMAX_COLUMNS 34
  520. #define MINMAX_ROW_PASTE 14
  521. #define MINMAX_COL_PASTE 23
  522. #define MINMAX_NUM_ELEMENTS 2
  523.  
  524.  
  525. #define CDFNAME_ELEMENT_NUM 1
  526. #define NUMDIM_ELEMENT_NUM 2
  527. #define DIMSIZ_ELEMENT_NUM 3
  528. #define NUMVAR_ELEMENT_NUM 4
  529. #define NUMREC_ELEMENT_NUM 5
  530. #define OUT_ELEMENT_NUM    6
  531. #define OUT_NAME_ELEMENT_NUM    7
  532. #define ROW_OFFSET 2
  533. #define COL_OFFSET 2
  534. #endif
  535.  
  536. /******************************************************************************
  537. * Contents of 'cdflist_vid_init.h' start here.
  538. ******************************************************************************/
  539. #if defined(CDFLIST)
  540. struct    vid_struct    CDF_display[CDF_NUM_ELEMENTS] =
  541. {
  542. {  1,   2,   "CDF Name ", 11},
  543. {  3,   2,   "Number of Dimensions ", 23},
  544. {  4,   2,   "Dimension Sizes ", 18},
  545. {  3,  29,   "Number of Variables ",49},
  546. {  4,  29,   "Number of Records ", 47},
  547. {  3,  57,   "Output ",64},
  548. {  4,  54,   "File name ",64},
  549. };
  550. #else
  551. extern struct vid_struct    CDF_display[CDF_NUM_ELEMENTS];
  552. #endif
  553. static char        VAR_label[] = "Variable Selection";
  554. #if defined(CDFLIST)
  555. struct    vid_struct       init_display[VAR_NUM_ELEMENTS];
  556. #else
  557. extern struct  vid_struct  init_display[VAR_NUM_ELEMENTS];
  558. #endif
  559.  
  560. #if defined(CDFLIST)
  561. struct    vid_struct    KEY_display[KEY_NUM_ELEMENTS] =
  562. {
  563. {  1,  1,   "", 1},
  564. };
  565. #else
  566. extern struct  vid_struct    KEY_display[KEY_NUM_ELEMENTS];
  567. #endif
  568.  
  569. #if defined(CDFLIST)
  570. struct    vid_struct    MES_display[MES_NUM_ELEMENTS] =
  571. {
  572. {  1,  1,   "", 1},
  573. };
  574. #else
  575. extern struct vid_struct    MES_display[MES_NUM_ELEMENTS];
  576. #endif
  577.  
  578. #if defined(CDFLIST)
  579. struct    vid_struct    OUT_display[OUT_NUM_ELEMENTS] =
  580. {
  581. {  1,   1,  "Terminal     ",1},
  582. {  2,   1,  "File         ",1},
  583. {  3,   1,  "Terminal/File",1},
  584. {  4,   1,  "CDF          ",1},
  585. };
  586. #else
  587. extern struct  vid_struct        OUT_display[OUT_NUM_ELEMENTS];
  588. #endif
  589. #if defined(CDFLIST)
  590. struct    vid_struct     FIELD_display[FIELD_NUM_ELEMENTS] =
  591. {
  592. {  1,   1,  "Generate Output       ",1},
  593. {  2,   1,  "Select Input CDF Name ",1},
  594. {  3,   1,  "Select Output Device  ",1},
  595. {  4,   1,  "Select Variables      ",1},
  596. {  5,   1,  "Select Special Options",1},
  597. {  6,   1,  "Help                  ",1},
  598. {  7,   1,  "Exit                  ",1},
  599. };
  600. #else
  601. extern struct vid_struct FIELD_display[FIELD_NUM_ELEMENTS];
  602. #endif
  603. #if defined(CDFLIST)
  604. struct    vid_struct     EPOCHFORMAT_display[EPOCHFORMAT_NUM_ELEMENTS] =
  605. {
  606. {  1,   1,  "( ) DD-MMM-YYYY HH:MM:SS.MSC",1},
  607. {  2,   1,  "( ) YYYYMMDD.TTTTTTT        ",1},
  608. };
  609. struct    vid_struct     VARFORMAT_display[VARFORMAT_NUM_ELEMENTS] =
  610. {
  611. {  1,   1,  "( ) CDF FORMAT attribute",1},
  612. {  2,   1,  "( ) CDFLIST defaults    ",1},
  613.  
  614. };
  615. struct    vid_struct     MINMAX_display[MINMAX_NUM_ELEMENTS] =
  616. {
  617. {  1,   1,  "( )       Display min/max values",1},
  618. {  2,   1,  "( ) Don't Display min/max values",1},
  619. };
  620. struct    vid_struct     FILTER_display[FILTER_NUM_ELEMENTS] =
  621. {
  622. {  1,   1,  "( ) Use    min/max values",1},
  623. {  2,   1,  "( ) Ignore min/max values",1},
  624. };
  625. struct    vid_struct     FILLVALUE_display[FILLVALUE_NUM_ELEMENTS] =
  626. {
  627. {  1,   1,  "( ) Use    Fill values",1},
  628. {  2,   1,  "( ) Ignore Fill Values",1},
  629. };
  630. #else
  631. extern struct vid_struct EPOCHFORMAT_display[EPOCHFORMAT_NUM_ELEMENTS];
  632. extern struct vid_struct VARFORMAT_display[VARFORMAT_NUM_ELEMENTS];
  633. extern struct vid_struct MINMAX_display[MINMAX_NUM_ELEMENTS];
  634. extern struct vid_struct FILTER_display[FILTER_NUM_ELEMENTS];
  635. extern struct vid_struct FILLVALUE_display[FILLVALUE_NUM_ELEMENTS];
  636. #endif
  637. #if !defined(CDFLIST)
  638. static char        KEY_label[] = "Keypad Definitions";
  639. static char        MES_label[] = "Message Buffer";
  640. static char        NO_label[] = "";
  641. static char        SPECIAL_label[] = "CDFLIST Special Options";
  642. static char        EPOCHFORMAT_label[] = "EPOCH display format";
  643. /*
  644. static char        VARFORMAT_label[] = "Variable display format";
  645. static char        MINMAX_label[] = "Variable Selection";
  646. static char        FILTER_label[] = "Filtering";
  647. static char        FILLVALUE_label[] = "Fill Value usage";
  648. */
  649. #endif
  650. #if defined(CDFLIST)
  651. FILE    *HELP_ptr;
  652. #else
  653. extern FILE    *HELP_ptr;
  654. #endif
  655. #if defined(CDFLIST)
  656. #ifdef vms
  657. static char default_name[] = "[]";
  658. #endif
  659. #ifdef unix
  660. static char default_name[] = "./";
  661. #endif
  662. #if defined(__MSDOS__)
  663. static char default_name[] = ".";
  664. #endif
  665. #endif
  666. #if defined(vms) | defined(__MSDOS__)
  667. void init_var_display(struct vid_struct *display, long int num_vars);
  668. Boolean check_epoch(char str[], double     *scale);
  669. int precision(double num);
  670. void CDFLIST_save_screen   (struct GLOBAL_struct *screen);
  671. void CDFLIST_restore_screen(struct GLOBAL_struct *screen);
  672. int CDFLIST_CDF_name(struct GLOBAL_struct *screen,
  673.               struct CDF_struct    *CDF,
  674.               long int *field_num, long int    *input_type);
  675. long int get_var_num(struct variable_struct possible[],
  676.              char *mnemonic, long int num_poss);
  677. void header(char *mnemonic, long int len, long int data_type,
  678.         long int string_size, char header_name[]);
  679. long int print_error(struct GLOBAL_struct *screen, CDFstatus rcode);
  680. CDFstatus CDFLIST_open(struct CDF_struct *CDF,
  681.                struct variable_struct **variables,
  682.                struct variable_struct **select,
  683.                struct vid_struct      **VAR_display,
  684.                struct vid_struct      **SELECT_display,
  685.                union  mixed          **data_values);
  686. void CDFLIST_get_data(struct CDF_struct *CDF, struct variable_struct select[],
  687.               long int num_select, long int record_num,
  688.               long int indices[10], union mixed data_values[]);
  689. CDFstatus CDFLIST_alloc_STRING(struct variable_struct select[],
  690.               long int num_select, union mixed data_values[]);
  691. void CDFLIST_free_STRING(struct variable_struct  select[],
  692.               long int num_select, union  mixed data_values[]);
  693. long int CDFLIST_create_new_CDF(struct    GLOBAL_struct    *screen,
  694.                 struct    CDF_struct    *CDF,
  695.                 struct variable_struct  select[],
  696.                 long int num_select,
  697.                 struct    CDF_struct    *new_CDF);
  698. CDFstatus put_attr_value(CDFid in_CDF_id, long int attr_num, long int entry_num,
  699.             long int out_entry_num, CDFid out_CDF_id,
  700.             long int data_type, long int num_elements);
  701. void CDFLIST_new_CDF_info(struct CDF_struct *CDF,
  702.               struct variable_struct select[],long int num_select,
  703.               struct CDF_struct    *new_CDF);
  704. void CDFLIST_list_data(struct GLOBAL_struct *screen,
  705.                struct CDF_struct    *CDF,
  706.                struct variable_struct  select[],
  707.                long int    num_select,long int num_filter,
  708.                union mixed *data_values, FILE *fptr);
  709. void next_indices(long int x[],long int    num_dims, long int dim_sizes[],
  710.           long int *copy_complete);
  711. void CDFLIST_check_filters(struct variable_struct select[], long int num_select,
  712.                struct variable_struct  variables[],
  713.                long int num_vars, long int *mult_flag);
  714. void CDFLIST_add_independent(struct variable_struct select[],
  715.                  long int *num_select,
  716.                  struct variable_struct  variables[],
  717.                  long int num_vars);
  718. void CDFLIST_select_VAR(struct GLOBAL_struct *screen,
  719.             int num_rows, int num_cols,
  720.             struct vid_struct display[],
  721.             struct vid_struct SELECT_display[],
  722.             struct variable_struct  possible[],
  723.             long int num_poss,
  724.             struct variable_struct  *select,
  725.             long int *num_select, long int    *in_field_num);
  726. void get_field(char row_data[], int col, int max_len,
  727.            char value[], long int *first_blank, long int *value_entered);
  728. void next_field(long int *col_field, long int *select_num, long int *start_page,
  729.         int *row, long int *scroll, long int num_poss);
  730. long int check_var(struct vid_struct display[],
  731.            char   var[], long int num_poss);
  732. void CDFLIST_menu_keydef(struct    GLOBAL_struct *screen);
  733. void CDFLIST_special_keydef(struct    GLOBAL_struct *screen);
  734. void CDFLIST_load_discrete(char    values[], long int num_values,
  735.                long int col_field, struct vid_struct *DIS_display,
  736.                long int *num_rows, long int *paste_col);
  737. CDFstatus CDFLIST_read_VAR(struct vid_struct  display[],
  738.                struct variable_struct  possible[],
  739.                long int num_poss,
  740.                struct variable_struct select[],
  741.                long int *num_select);
  742. void CDFLIST_filter(struct variable_struct  select[],
  743.             long int num_select, union mixed data_values[],
  744.             long int check_scalar, long int *valid);
  745. CDFstatus CDFLIST_put_CDF(struct CDF_struct      *new_CDF,
  746.               long int record_num, long int    indices[],
  747.               struct variable_struct  select[],
  748.               long int num_select, union  mixed data_values[]);
  749. CDFstatus CDFLIST_get_discrete(long int CDF_id, long int dim_num,
  750.                    long int    var_id, long int data_type,
  751.                    long int    num_values,
  752.                    double bin_values[], char *char_values);
  753. void CDFLIST_output(struct GLOBAL_struct *screen, struct CDF_struct *CDF,
  754.             FILE **out_file, long int *field_num);
  755. void CDFLIST_default_name(char string[], char default_name[]);
  756. void CDFLIST_clear_row(WINDOWid vid,struct vid_struct display[],
  757.                int start_elem, int end_elem, int end_col);
  758. void CDFLIST_file_header(struct    CDF_struct    *CDF,
  759.              struct variable_struct  select[],
  760.              long int num_select, FILE *fptr);
  761. void CDFLIST_help(struct GLOBAL_struct    *screen);
  762. int lastc(char *buf);
  763. void CDFLIST_field_menu(struct GLOBAL_struct *screen, long int    *option);
  764. void CDFLIST_open_screen(struct GLOBAL_struct *screen);
  765. void CDFLIST_special_options(struct GLOBAL_struct *screen);
  766. int CDFLIST_special_option_menu(WINDOWid vid, int *value, int num_rows);
  767. void CDFLIST_disp_opt(WINDOWid vid, int value, int num_rows);
  768.  
  769. void CDFLIST_select_menu_item(WINDOWid vid,
  770.                   WINDOWid MES_vid, long int *rvalue,
  771.                   struct vid_struct    display[],
  772.                   long int num_elements, int num_rows,
  773.                   int num_columns, int row_start,
  774.                   int col_start, int mode,
  775.                   int *termcode);
  776. void CDFLIST_CDF_info(struct GLOBAL_struct *screen,
  777.               struct CDF_struct    *CDF,
  778.               struct vid_struct  CDF_display[],
  779.               struct vid_struct  OUT_display[]);
  780. void load_vid(WINDOWid vid, struct vid_struct display[], int start_elem,
  781.           int num_elements, char label[]);
  782. void load_vars(WINDOWid vid, struct vid_struct    display[], long int start_num,
  783.            long int    max_vars);
  784. void load_vid_element(WINDOWid vid, struct vid_struct display[],
  785.               int element_num);
  786. void CDFLIST_load_keydef(WINDOWid vid, char line1[], char line2[]);
  787. void CDFLIST_put_selection(WINDOWid vid, struct    vid_struct display[],
  788.                int element_num, char selection[],
  789.                int field_len, int video_type);
  790. void CDFLIST_put_select_row(WINDOWid vid, struct vid_struct display[],
  791.                 int row, int element_num,
  792.                 char selection[], int field_len,
  793.                 int video_type);
  794. void CDFLIST_put_value(WINDOWid vid, struct vid_struct    display[],
  795.                int row, int element_num, double bin_value);
  796. void CDFLIST_put_TIME(WINDOWid vid, struct vid_struct display[],
  797.               int row, int element_num, double time);
  798. void CDFLIST_put_message(WINDOWid vid, char message[], int rbell,
  799.              int video_type, int pause);
  800. void load_menu(WINDOWid vid, struct vid_struct    display[],
  801.            int num_elements, char label[]);
  802. void zero_replace(char string[]);
  803. void CDFLIST_check_name(char string[]);
  804. void CDFLIST_left_justify (char    field[]);
  805. void CDFLIST_print_header(struct variable_struct  select[],
  806.               long int num_select, long int max_term,
  807.               long int output, FILE    *fptr, long int    first);
  808. void CDFLIST_print_data(struct variable_struct  select[],
  809.             union mixed data_values[], long int num_select,
  810.             long int max_term, long int output, FILE *fptr);
  811. void CDFLIST_var_menus(struct GLOBAL_struct *screen, struct CDF_struct *CDF,
  812.                int *var_rows, int *var_columns);
  813. CDFstatus CDFLIST_close(struct CDF_struct *CDF);
  814. void CDFLIST_close_screen(struct GLOBAL_struct    *screen);
  815. double r4_r8(float *r4);
  816. void CDFLIST_valid_minmax (CDFid CDF_id, long attr_num,
  817.                long  field_num, double *scale, CDFstatus *rcode);
  818. long get_1char (char *); /*jtl*/
  819. #endif
  820. #if defined(__MSDOS__)
  821. void CDFLIST_draw_main_screen(struct GLOBAL_struct *screen);
  822. #endif
  823.  
  824.  
  825. #if defined (unix)
  826. Boolean check_epoch();
  827. int precision();
  828. int CDFLIST_CDF_name();
  829. long int get_var_num();
  830. void header();
  831. long int print_error();
  832. CDFstatus CDFLIST_open();
  833. void CDFLIST_get_data();
  834. CDFstatus CDFLIST_alloc_STRING();
  835. void CDFLIST_free_STRING();
  836. long int CDFLIST_create_new_CDF();
  837. CDFstatus put_attr_value();
  838. void CDFLIST_new_CDF_info();
  839. void CDFLIST_list_data();
  840. void next_indices();
  841. void CDFLIST_check_filters();
  842. void CDFLIST_add_independent();
  843. void CDFLIST_select_VAR();
  844. void get_field();
  845. void next_field();
  846. long int check_var();
  847. void CDFLIST_menu_keydef();
  848. void CDFLIST_special_keydef();
  849. void CDFLIST_load_discrete();
  850. CDFstatus CDFLIST_read_VAR();
  851. void CDFLIST_filter();
  852. CDFstatus CDFLIST_put_CDF();
  853. CDFstatus CDFLIST_get_discrete();
  854. void CDFLIST_output();
  855. void CDFLIST_default_name();
  856. void CDFLIST_clear_row();
  857. void CDFLIST_file_header();
  858. void CDFLIST_help();
  859. int lastc();
  860. void CDFLIST_field_menu();
  861. void CDFLIST_open_screen();
  862. void CDFLIST_special_options();
  863. int CDFLIST_special_option_menu();
  864. void CDFLIST_disp_opt();
  865. void CDFLIST_draw_main_screen();
  866. void CDFLIST_select_menu_item();
  867. void CDFLIST_CDF_info();
  868. void load_vid();
  869. void load_vars();
  870. void load_vid_element();
  871. void CDFLIST_load_keydef();
  872. void CDFLIST_put_selection();
  873. void CDFLIST_put_select_row();
  874. void CDFLIST_put_value();
  875. void CDFLIST_put_TIME();
  876. void CDFLIST_put_message();
  877. void load_menu();
  878. void zero_replace();
  879. void CDFLIST_check_name();
  880. void CDFLIST_left_justify ();
  881. void CDFLIST_print_header();
  882. void CDFLIST_print_data();
  883. void CDFLIST_var_menus();
  884. CDFstatus CDFLIST_close();
  885. void CDFLIST_close_screen();
  886. double r4_r8();
  887. void CDFLIST_valid_minmax ();
  888. void init_var_display();
  889. void input_field(); /*jtl*/
  890. long get_1char(); /*jtl*/
  891. #endif
  892.  
  893.